package cn.marinda.resturants.service;

import cn.marinda.resturants.entity.Activity;
import cn.marinda.resturants.entity.Administrator;
import cn.marinda.resturants.entity.User;
import cn.marinda.resturants.global.Pages;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/** Administrator Service 服务层
 *
 * @date 2021/12/2
 * @author Marinda
 * @version 1.0
 *
 */
public interface AdministratorService extends IService<Administrator> {

    /** 分页
     *
     * @param pages 分页
     * @return 分页结果
     */
    IPage<Administrator> selectAdministratorPages(Pages<?> pages);

    /** 查询所有Administrator
     *
     * @return 所有Administrator
     */
    List<Administrator> queryList();

    /** 添加一个管理员信息
     *
     * @param administrator 管理员信息
     * @return 结果
     */
    boolean addAdministrator(Administrator administrator);

    /** 删除一个管理员信息
     *
     * @param uid 管理员
     * @return 结果
     */
    boolean deleteAdministrator(String uid);

    /** 通过uid来查询一个用户
     *
     *
     * @param uid 用户uid
     * @return 用户
     */
    Administrator selectAdministratorid(String uid);

    /** 查询一个身份类型下的所有管理员
     *
     * @param type 类型
     * @return 包含administrator 的一个集合
     */
    List<Administrator> selectTypeAdmin(String type);

    /** 通过查询管理员名字找到这个Admin
     *
     * @param name adminName
     * @return Administrator
     */
    Administrator selectAdminName(String name);

    /** 通过查询Administrator的Phone能找到这个Administator
     *
     * @param phone admin phone
     * @return Administrator
     */
    Administrator selectPhone(String phone);

    /** 乐观锁修改管理员细腻些
     *
     * @param administrator 管理员
     * @return 结果
     */
    boolean updateAdministrator(Administrator administrator);
}
